import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np

# ===========================================================
#                       字体/风格设置
# ===========================================================
custom_font = FontProperties(fname="./Microsoft_YaHei.ttc")

#print(plt.style.available)                  # 查看支持的主题
#plt.style.use("seaborn-v0_8")               # 设置主题
plt.grid("on", color="lightgray", lw=0.25)   # 网格开关
plt.rcParams['axes.unicode_minus'] = False   # 正常显示负号

# ===========================================================
#                         画布设置
# ===========================================================
#plt.figure(figsize=(10, 6.18), dpi=10)

# ===========================================================
#                       xy轴标题设置
# ===========================================================
#plt.xlabel("这是x", fontproperties=custom_font)
plt.ylabel("这是y", fontproperties=custom_font)
plt.title("这是title", fontproperties=custom_font, fontsize=15)
#plt.yticks(fontsize=10)
#plt.xticks(fontsize=10)
plt.ylim(ymin=0, ymax=80)                    # y轴范围
plt.locator_params('y', nbins=10)            # y轴刻度

#plt.gca().spines['top'].set_visible(False)
#plt.gca().spines['right'].set_visible(False)
#plt.gca().spines['bottom'].set_visible(False)
#plt.gca().spines['left'].set_visible(False)

# ===========================================================
#                         数据绘制
# ===========================================================
x = np.arange(3)
y1 = [23, 17, 35]
y2 = [31, 25, 39]
y3 = [38, 29, 42]

plt.bar(x-0.25, y1, color="#8ECFC9", label="C", width=0.25)
plt.bar(x, y2, color="#FFBE7A", label="C++", width=0.25)
plt.bar(x+0.25, y3, color="#FA7F6F", label="Python", width=0.25)

plt.xticks([0,1,2], ['zero','two','four'])   # 自定义刻度

plt.legend()                                 # 显示各label图例

# ===========================================================
#                         其它
# ===========================================================
plt.text(1, 10, '添加文字：y = sin(x)', fontproperties=custom_font)
plt.text(2.14, 20, r'$ \alpha \beta \pi $', size=25, fontproperties=custom_font)

# ===========================================================
#                         显示
# ===========================================================
plt.show()